;;Projeto da matéria paradigmas de programação


;;cria a lista de salas
(define cria_sala
  (lambda (nome descricao sala_n sala_s sala_l sala_o objetos personagens)
    (list nome descricao sala_n sala_s sala_l sala_o objetos personagens)))



(define s1 (cria_sala "Quarto" "Um quarto comum" '() '(s2) '() '() '() '()))
(define s2 (cria_sala "Cozinha" "Uma cozinha" '(s1) '() '() '() '() '()))


;;retorna o item ref de uma lista
(define return-ref
  (lambda (lista ref)
           (if (<= ref 1)
               (car lista)
               (return-ref (cdr lista) (- ref 1)))))



;;retorna o nome da sala
(define getNomeSala
  (lambda (sala)
    (return-ref sala 1)))

(getNomeSala s1)

;;retorna a sala da direcao em que o personagem resolve andar
(define getSala
  (lambda (dir sala)
    (cond ((equal? dir "n") (return-ref sala 3))
          ((equal? dir "s") (return-ref sala 4))
          ((equal? dir "l") (return-ref sala 5))
          ((equal? dir "o") (return-ref sala 6)))))

(getSala ("n" s1))








